<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

        /* 递归函数技巧
            1.先写一个函数
            2.设置结束条件  
            3.如果没有达到结束条件  那么将结果返回
        
        
        */
        function Factorial(num){
           if(num == 1) return; //设置结束条件
           return num * Factorial(num-1);// 如果没有达到折返条件 
           // 将结果返回
        }


        // 斐波那契数列
        // 查看第几个月 有几对兔子 
        function Fibonacci(month){
            if(month==1 || month == 2) return 1;
            // 5月  
            // 4月+3月
            return Factorial(month-1) + Factorial(month-2)
        }

        console.log(Factorial(5))
        // Factorial(4)+Factorial(3)
        // Factorial(3)+Factorial(2)+Factorial(2)+Factorial(1)
        // Factorial(2)+Factorial(1)+Factorial(2)+Factorial(2)+Factorial(1)
        //  1              1                1         1           1
        // 5


        //  max  min
        //  18   16 
        // max % min = 余数
        // 18 % 16 = 2
        // min % 余数 == 0
        // 16 % 2 == 0 
        // 余数就是最大公约数  

        // max min
        // 17  3

        // 17 % 3 == 2

        // 3 %  2 == 1

        // 2 % 1  == 0 

        // 1就是最大公约数  


    </script>
</body>
</html>